home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
kouza
/
sample.gtx
< prev
next >
Wrap
Text File
|
1994-06-01
|
7KB
|
281 lines
===============================================================
「講座野郎」 サンプルデータ
===============================================================
● はじめに
このツールは、テキスト表示中に図なども表示しちゃおうという
ツールです。
● さっそく
では、左クリックしてみてください。キーボードの絵がでたら、
それが正常な動作です(^^;
では、さっきの目次の所に戻りましょう。右クリックしてくださ
い。
● スクロールのさせかた
私の尊敬するHONESEN 氏という方が、J-Typeというとっても便利
なツールを提供してくださっているのはもうみなさんご存じですよ
ね。
このツールは一見したところ、あのJ-Typeとそっくりですが、ス
クロールのさせかたがちょっと変則的なんです。
マウスを向こうにやったり、手前にひいたりしてみて下さい。
それだけでスクロールするんです。妙な仕様ですみません(^^;
左クリックしてみましょうか。TOOLS のロゴがあちこちにでます。
このように表示されるグラフィックファイルは、16色のものしか使
えません。また、目次の一項目について、10枚までの絵が一度に
表示できます。
このグラフィックを消すには、また左クリックして下さい。
このように、左クリックで、好きな時に絵をだしたり消したりで
きます。
スクロールは、うまい方法を思いつかなかったので、J-Typeのよ
うにさらさらっとはできてません。CDプレーヤーもついていないの
で、サイドワークのものを使ってくださいね(^^;
これより下の部分には、スクロールの実験の為だけに、全然関係
ないものをいれておきました。このツールの使いにくさを試してみ
てください(^_^;;
---------- スクロール 練習用スペース ---------
int tif_set( int page )
{
int i ;
char s[256] ;
for( i=0; i<TIFMAX; i++ )
{
cnum = i ;
strcpy( s, pagedata[page].tif[i] ) ;
if( tifflg[page][i] == 1 )
put_tif( s, 0, 0 ) ;
}
return NOERR ;
}
int mainloop( int page, int flg, int gtx )
{
int line ;
int mosch, mosx, mosy, speed = 0, start, end ;
MOS_horizon( 0, 639 ) ;
MOS_vertical( 0, 479 ) ;
if( gtx == OFF )
{
start = 0 ;
end = lsize-1 ;
}
else
{
start = pagedata[page].start ;
end = pagedata[page].end ;
}
if( flg == OFF )
{
MOS_setpos( 320, 240 ) ;
vline = 31 ;
cline = 31 + start ;
for( line=start; line<=start+30 && line<=end ; line++ )
putline( mark[line], line-start ) ;
}
do
{
MOS_rdpos(&mosch,&mosx,&mosy) ;
speed = ( mosy - 240 ) / 10 ;
if( speed<-1 && cline>(31+start) && (end-start) > 30 )
{
cline--;
back_scr( cline-31, -speed-1, vline ) ;
vline--;
if( vline == -1 )
vline = 31 ;
}
if( speed > 1 && cline < end+2 && (end-start) > 30 )
{
forward_scr( cline, speed-1, vline ) ;
cline++ ;
vline++ ;
if( vline == 32 )
vline = 0 ;
}
} while( mosch == 0 ) ;
mospause() ;
return mosch ;
}
int forward_scr( int cline, int speed, int vline )
{
int i ;
if( vram == 512 )
vram = 0 ;
for( i=vram+1 ; i<=vram+16; i++ )
{
vram_offset( 21, i*128 ) ;
if( i%speed == 0 )
wait( 1 ) ;
}
vram += 16 ;
if( vram == 512 )
vram = 0 ;
putline( mark[cline], vline ) ;
return NOERR ;
}
int back_scr( int cline, int speed, int vline )
{
int i ;
putline( mark[cline], vline ) ;
if( vram == 0 )
vram = 512 ;
for( i=vram-1 ; i>=vram-16; i-- )
{
vram_offset( 21, i*128 ) ;
if( i%speed == 0 )
wait( 1 ) ;
}
vram -= 16 ;
if( vram == 0 )
vram = 512 ;
return NOERR ;
}
int putline( char *adr, int line )
{
char buf1[ LINESIZE+1 ], buf2[ LINESIZE+1 ] ;
int i, j, c = 0, flg = 0 ;
for( i=0; i<LINESIZE; i++ )
buf2[i] = ' ' ;
buf2[LINESIZE] = '\0' ;
strncpy( buf1, adr, LINESIZE ) ;
buf1[LINESIZE] = '\0' ;
for( i=0; i<LINESIZE; i++ )
{
switch( buf1[i] )
{
case '\t' :
for( j=0; j<tabsize; j++ )
{
buf2[c] = ' ' ;
c++ ;
}
break ;
case 0xd :
if( buf1[i+1] == 0xa )
{
i++ ;
flg = 1 ;
}
else
buf2[c] = buf1[i] ;
c++ ;
break ;
case 0x1a:
c++ ;
flg = 1 ;
break ;
default :
buf2[c] = buf1[i] ;
c++ ;
break ;
}
if( flg == 1 )
break ;
}
wrtstr( buf2, 0x40000, 0, line*16, White, Black, 16 ) ;
return NOERR ;
}
---------- 練習用スペース 終わり ----------
● おわりかた
そろそろ、このツールが分かっていただけたでしょうか。メモリ
が少ないTOWNS では、大きいの絵を一度に表示させようとすると、
「メモリが足りません」のエラーとなるかもしれませんので、まぁ
ほどほどの絵をだすといいでしょう。
オフラインミーティングの時の場所の地図案内に、技術屋さんの
間での図入りデータのやり取りに、パソコンサークルの講座用に、
いろいろ使ってみてください。
肝心の、このツールの終了のさせかたですが、右クリックで目次
表示に戻ったら、そこでまた右クリックしてください。そうすると、
TOWNS-Menuに戻ります。
このツールの変則的なスクロールを練習される方は、PAGE1 の項
目をクリックしてください。
詳しいことは、KOUZA.doc を読んでもらえればわかるんではなか
ろうかと思います。
TOOLSというTOWNS サークルは、有名じゃない庶民派サーク
ルですが、名前と違って、ツールばかり作っているような集団では
なく、のんびりいろんな話をやっているサークルです。
そののんびりサークルの会長ごんざが、このへんてこなツールを
作りました。今後ともよろしくお願いします。
TOOLS 1994
#DATA_START
main
{
name = "講座野郎V1.0の簡易解説書" ;
}
page : 0
{
start = 1 ;
end = 20 ;
name = "はじめに見てね" ;
tif : 0 = "key1.tif", 100, 50 ;
}
page : 1
{
start = 21 ;
end = 214 ;
name = "スクロールのさせかた" ;
tif : 0 = "tools.tif", 0, 0 ;
tif : 1 = "tools.tif", 400, 50 ;
tif : 2 = "tools.tif", 20, 300 ;
}
page : 2
{
start = 215 ;
end = 244 ;
name = "最後に" ;
}
#DATA_END